#include "led.h"

LED_Status g_ledStatus = INITAL;

void led_status(LED_Status Status, GPIO_PinState PinState)
{
	HAL_GPIO_WritePin(green_led_GPIO_Port, green_led_Pin, GPIO_PIN_RESET);
	HAL_GPIO_WritePin(blue_led_GPIO_Port, blue_led_Pin, GPIO_PIN_RESET);
	HAL_GPIO_WritePin(red_led_GPIO_Port, red_led_Pin, GPIO_PIN_RESET);
	switch (Status)
	{
		case INITAL:
			HAL_GPIO_WritePin(green_led_GPIO_Port, green_led_Pin, PinState);
		break;
		case IDLE:
			HAL_GPIO_WritePin(blue_led_GPIO_Port, blue_led_Pin, PinState);
		break;
		case ERRO:
			HAL_GPIO_WritePin(red_led_GPIO_Port, red_led_Pin, PinState);
		break;
	}
}

void led_status_toggle(LED_Status Status)
{

	switch (Status)
	{
		case INITAL:
			HAL_GPIO_TogglePin(green_led_GPIO_Port, green_led_Pin);
			HAL_GPIO_WritePin(blue_led_GPIO_Port, blue_led_Pin, GPIO_PIN_SET);
			HAL_GPIO_WritePin(red_led_GPIO_Port, red_led_Pin, GPIO_PIN_SET);
		break;
		case IDLE:
			HAL_GPIO_TogglePin(blue_led_GPIO_Port, blue_led_Pin);
			HAL_GPIO_WritePin(green_led_GPIO_Port, green_led_Pin, GPIO_PIN_SET);
			HAL_GPIO_WritePin(red_led_GPIO_Port, red_led_Pin, GPIO_PIN_SET);
		break;
		case ERRO:
			HAL_GPIO_TogglePin(red_led_GPIO_Port, red_led_Pin);
			HAL_GPIO_WritePin(blue_led_GPIO_Port, blue_led_Pin, GPIO_PIN_SET);
			HAL_GPIO_WritePin(green_led_GPIO_Port, green_led_Pin, GPIO_PIN_SET);
		break;
	}
}

void set_led_status(LED_Status newStatus)
{
	g_ledStatus = newStatus;
}
